package com.cotasul.tela;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import com.cotasul.bean.OrcamentoBean;
import com.cotasul.bean.UsuarioBean;
import com.cotasul.negocio.OrcamentoServico;
import com.cotasul.negocio.interfaces.IServicoGenerico;

@ManagedBean
@ViewScoped
public class ConsultaCotacaoTela extends TelaAbstrata {

	private OrcamentoServico<OrcamentoBean> orcamentoServico;
	@ManagedProperty(value = "#{usuario}")
	private UsuarioBean usuario;

	private String dataDeFiltro;

	private String dataAteFiltro;

	private String codProdFiltro;

	private String descProdFiltro;

	private String numOrcaDe;

	private String numOrcaAte;
	
	private String statusFiltro;

	private Map<String, String> param;

	private List<OrcamentoBean> listaOrcamento;

	public ConsultaCotacaoTela() {
		this.orcamentoServico = new OrcamentoServico<OrcamentoBean>();
		listaOrcamento = new ArrayList<OrcamentoBean>();
	}

	public void filtrarCotacao() {
		this.param = new HashMap<String, String>();
		try {
			if (dataDeFiltro != null && !"".equals(dataDeFiltro)) {
				param.put("DATADE", dataDeFiltro);
			}
			if (dataAteFiltro != null && !"".equals(dataAteFiltro)) {
				param.put("DATAATE", dataAteFiltro);
			}
			if (codProdFiltro != null && !"".equals(codProdFiltro)) {
				param.put("CODPROD", codProdFiltro);
			}
			if (descProdFiltro != null && !"".equals(descProdFiltro)) {
				param.put("DESCPROD", descProdFiltro);
			}
			if (numOrcaDe != null && !"".equals(numOrcaDe)) {
				param.put("NUMORCADE", numOrcaDe);
			}
			if (numOrcaAte != null && !"".equals(numOrcaAte)) {
				param.put("NUMORCAATE", numOrcaAte);
			}
			param.put("CODUSER", usuario.getCodigo()+"");
			param.put("STATUS", statusFiltro);	

			this.listaOrcamento = this.orcamentoServico.buscaOrcamentos(param);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@SuppressWarnings("rawtypes")
	@Override
	protected IServicoGenerico getServico() {
		return this.orcamentoServico;
	}

	public OrcamentoServico<OrcamentoBean> getOrcamentoServico() {
		return orcamentoServico;
	}

	public void setOrcamentoServico(
			OrcamentoServico<OrcamentoBean> orcamentoServico) {
		this.orcamentoServico = orcamentoServico;
	}

	public UsuarioBean getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioBean usuario) {
		this.usuario = usuario;
	}

	public String getDataDeFiltro() {
		return dataDeFiltro;
	}

	public void setDataDeFiltro(String dataDeFiltro) {
		this.dataDeFiltro = dataDeFiltro;
	}

	public String getDataAteFiltro() {
		return dataAteFiltro;
	}

	public void setDataAteFiltro(String dataAteFiltro) {
		this.dataAteFiltro = dataAteFiltro;
	}

	public String getCodProdFiltro() {
		return codProdFiltro;
	}

	public void setCodProdFiltro(String codProdFiltro) {
		this.codProdFiltro = codProdFiltro;
	}

	public String getDescProdFiltro() {
		return descProdFiltro;
	}

	public void setDescProdFiltro(String descProdFiltro) {
		this.descProdFiltro = descProdFiltro;
	}

	public String getNumOrcaDe() {
		return numOrcaDe;
	}

	public void setNumOrcaDe(String numOrcaDe) {
		this.numOrcaDe = numOrcaDe;
	}

	public String getNumOrcaAte() {
		return numOrcaAte;
	}

	public void setNumOrcaAte(String numOrcaAte) {
		this.numOrcaAte = numOrcaAte;
	}

	public Map<String, String> getParam() {
		return param;
	}

	public void setParam(Map<String, String> param) {
		this.param = param;
	}

	public List<OrcamentoBean> getListaOrcamento() {
		return listaOrcamento;
	}

	public void setListaOrcamento(List<OrcamentoBean> listaOrcamento) {
		this.listaOrcamento = listaOrcamento;
	}

	public String getStatusFiltro() {
		return statusFiltro;
	}

	public void setStatusFiltro(String statusFiltro) {
		this.statusFiltro = statusFiltro;
	}

}
